var ws = require("ws");

var server = new ws.Server({
    host:"127.0.0.1",
    port:6080,
});

// 监听接入进来的客户端事件
function websocket_add_listener(client_sock) {
	// close事件
	client_sock.on("close", function() {
		console.log("client close");
	});

	// error事件
	client_sock.on("error", function(err) {
		console.log("client error", err);
	});
	// end 

	// message 事件, data已经是根据websocket协议解码开来的原始数据；
	// websocket底层有数据包的封包协议，所以，绝对不会出现粘包的情况。
	// 每解一个数据包，就会触发一个message事件;
	// 不会出现粘包的情况，send一次，就会把send的数据独立封包。
	// 想我们如果是直接基于TCP，我们要自己实现类是于websocket封包协议；
	client_sock.on("message", function(data) {
		console.log(data);
		client_sock.send("Thank you!");
	});
	// end 
}

//connection事件 监听有客户进来
function on_server_client_comming(client_sock){
    console.log("client comming");
    websocket_add_listener(client_sock);
}
server.on("connection",on_server_client_comming);

//error事件，表示监听到错误
function on_server_listen_error(err){

}
server.on("error",on_server_listen_error);

function on_server_handers(data){
    console.log(data);
}
server.on("headers",on_server_handers);